<?php

//include_once '../../Controller/Objects/Comunidade.php';
//include_once '../../Controller/Objects/PerfilAtleta.php'; 
include_once 'Conexao.php';

class ComunidadeDataBase {
    
    public function inserir(Comunidade $comunidade){
        $conexao = new Conexao();
        $conexao->abrir();
        try {
            $nome = $comunidade->getNome();        
            $descricao = $comunidade->getDescricao();
            $tipo_imagem = $comunidade->getTipoImagem();       
            $imagem = $comunidade->getImagem();               
            $tb_perfilAtleta_login = $comunidade->getDono()->getLogin();               
            //comando SQL testado
            $sqlComunidade = "INSERT INTO tb_comunidade (nome,descricao,tipo_imagem,imagem,"
              ."tb_perfilatleta_login ) VALUES ('$nome','$descricao','$tipo_imagem','$imagem',"
              ."'$tb_perfilAtleta_login')";
            mysql_query($sqlComunidade);
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
        } catch (Exception $exc) {
            throw new Exception('Erro ao cadastrar comunidade.');
        }
        $conexao->fechar();    
    }
    
    
    //retorna A comunidade com o nome solicitado
    public function retornarComunidade($nomeComunidade){
        $conexao=new Conexao();
        $conexao->abrir();
        $sql = "SELECT * FROM tb_comunidade WHERE nome ='$nomeComunidade'";
        $resultSet = mysql_query($sql);
        if(mysql_num_rows($resultSet)==1){
            while($line=mysql_fetch_array($resultSet)){
                $id = $line['id_comunidade'];
                $nome = $line['nome'];
                $descricao = $line['descricao'];
                $imagem = $line['imagem'];
                $tipoImagem = $line['tipo_imagem'];            
                $dono = $line['tb_perfilatleta_login'];            
                $sql2 = "SELECT * FROM tb_perfilatleta WHERE login='$dono'";
                $rs2 = mysql_query($sql2);
                if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
                }
                $line2 = mysql_fetch_array($rs2);
                $pA = new PerfilAtleta($line2['login'], $line2['senha'], $line2['status'], $line2['codigoValidacao']);
                $comunidade= new Comunidade($id, $nome, $descricao, $imagem, $tipoImagem, $pA);
                //header("Content-type: ".$tipoImagem.""); 
                //Image
                //echo base64_decode($imagem);                
                return $comunidade;               
            }
            }else{
            throw new Exception('Nome da comunidade inválido.');
            }  
            $conexao->fechar();
    }
    
    
    //nome da comunidade é único mas nao e chave primária
    public function excluir($nomecomunidade){        
        $conexao=new Conexao();
        $conexao->abrir();
        try {
            $sql = "DELETE FROM tb_comunidade WHERE nome='$nomecomunidade'";
            //todos os topicos, mensagens e eventos da comunidade serao excluidos por cascata. 
            mysql_query($sql); 
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
        } catch (Exception $exc) {
           throw new Exception('Nome da comunidade inválido.');
        }
        $conexao->fechar();                
    }
    
    
    //id_comunidade nao é alterada
    public function alterar(Comunidade $comunidade){
        $conexao=new Conexao();
        $conexao->abrir();
        
        try {
             $id_comunidade = $comunidade->getId();        
             $descricao = $comunidade->getDescricao();
             $tipoImagem = $comunidade->getTipoImagem();
             $imagem = $comunidade->getImagem();
             //$perfilAtleta = $comunidade->getDono().getLogin(); nao pode ser alterado
             //$nome = $comunidade->getNome(); nao pode ser alterado

             $sql = "UPDATE tb_comunidade SET descricao= '$descricao', tipo_imagem='$tipoImagem',"
             ."imagem= '$imagem' where id_comunidade= '$id_comunidade'";
             mysql_query($sql);
             if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
             }
        } catch (Exception $exc) {
            throw new Exception('Não foi possivel realizar alteração.');
        }
        $conexao->fechar();      
    }     
    
    public function listarComunidades($nomeComunidade){
        $conexao=new Conexao();
        $conexao->abrir();
        $array = array();
       //comando mysql testado
       try {
           $sql = "SELECT * FROM tb_comunidade WHERE nome like '%$nomeComunidade%'";
           $rs = mysql_query($sql);
           if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
           while($line=mysql_fetch_array($rs)){
                $id = $line['id_comunidade'];
                $nome = $line['nome'];
                $descricao = $line['descricao'];
                $imagem = $line['imagem'];
                $tipoImagem = $line['tipo_imagem'];            
                $dono = $line['tb_perfilatleta_login'];
                $sql2 = "SELECT * FROM tb_perfilatleta WHERE login='$dono'";
                $rs2 = mysql_query($sql2);
                $line2 = mysql_fetch_array($rs2);
                $pA = new PerfilAtleta($line2['login'], $line2['senha'], $line2['status'], $line2['codigoValidacao']);
                $comunidade= new Comunidade($id, $nome, $descricao, $imagem, $tipoImagem, $pA);
                array_push($array, $comunidade);                  
           }
           return $array;
       } catch (Exception $e) {
           echo $e->getMessage();
       }
        $conexao->fechar();
        
    }
    public function recuperar($nomeComunidade){
        $conexao=new Conexao();
        $conexao->abrir();       
        $sql = "SELECT id_comunidade FROM tb_comunidade WHERE nome ='$nomeComunidade'";
        $resultSet = mysql_query($sql);
        if(mysql_num_rows($resultSet)==1){
            $resposta=true;            
        }else{
            $resposta=false;
        }
        $conexao->fechar();
        return $resposta;
    }
}//fim da classe

?>
